package 王凯迪.src;

import java.util.Locale;

public class PolymorphismExample {
    public static void main(String[] args) {
        //使用接口引用来指向具体的实现类对象
        AnimalBehavior dog = new Dog();
        AnimalBehavior cat = new Cat();

        //调用接口方法，实际执行的是实现类的方法
        dog.makeSound();//输出：Woof!Woof!
        cat.makeSound();//输出：Meow！Meow！
        //演示多态性：可以将任何实现了AnimalBehavior的对象传递给一个方法

        playWithAnimal(dog);
        playWithAnimal(cat);
    }
    public static void playWithAnimal(AnimalBehavior animal){
        System.out.print("Playing    with    a   "     +
                animal.getClass().getSimpleName() .toLowerCase() + "that says");
        animal.makeSound();
    }
}
